本文是学习GB-T 33263-2016 机器人软件功能组件设计规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了模块化和网络化构建的机器人产品的软件资源的功能封装技术,机器人软件开发领
域的组件模型和相应的设计规范,以及机器人组件的集成方法。
本标准适用于机器人软件开发领域。非模块化、网络化机器人系统中的机器人软件开发和设计亦
可参照使用本标准。
下列术语和定义适用于本文件。
2.1
机器人功能组件 robotic functional component
实现机器人模块化的要素,具有独立的结构,符合标准的软件和硬件接口规范,能完成机器人相关
的独立功能,能够实现支撑、运动、感知、计算、控制等特定功能。
注: 机器人功能组件包括:机构类功能组件、软件类功能组件和电气类功能组件。本标准提及的功能组件,特指软
件类功能组件,可用在不同机器人系统,便于实现机器人的快速集成。
2.2
机器人功能组件创建器 RFC builder
一个用于开发机器人功能组件的模板生成工具。
注: 机器人功能组件创建器生成基于用户配置的参数化自定义模板,并以
XML 文件进行保存。它通常是以插件或
脚本形式运行。
2.3
机器人功能组件集成器 RFC integrator
将若干个机器人功能组件集成起来进行协同管理的工具。
注: 每个组件外部有若干数量的输入、输出端口(包括数据端口和服务端口等),开发人员能够在端口之间连线来规
范模块间的数据流和服务流关系,能够将系统的全部组件连接关系以图形化形式进行编辑,并以
XML 格式存
储。程序编辑完成后,通过机器人功能组件集成器控制整个机器人系统运行。
2.4
任务编辑器 task editor
以脚本或图形化编程的形式,为机器人系统编写任务或服务的软件。
注: 在任务编辑器中,各个组件通过输入、输出接口互相连接。用户基于有限状态机编写脚本或流程图,任务编辑
器即自动生成可以直接执行的任务序列。编辑好的任务以 XML
格式存储,可以连接仿真环境查看运行效果,
也可以直接下载到机器人系统运行。
GB/T 33263—2016
下列缩略语适用于本文件。
FSM: 有限状态机(Finite State Machine)
OMG: 对象管理组织(Object Management Group)
RFC: 机器人功能组件(Robotic Functional Component)
UML: 统一建模语言(Unified Modeling Language)
VRML: 虚拟现实建模语言(Virtual Reality Modeling Language)
XML: 可扩展标记语言(Extensible Markup Language)
在机器人软件系统中,其基本的组件单元称为机器人功能组件如图1所示,其UML
模型如图2所示。
机器人功能组件
style="width:8.18668in;height:7.67998in" />配置
接口
服务端口
(消费者)
行为内核
C/CPyuho nJawt.
ctons:
Culbcky
Algorithms
Imgrm xcripts
状态自检
终止
运行
激活一错误
休
动作端口
(提供者)
脚本
服务
style="width:0.39333in;height:0.19338in" /> 接口
图 1 机器人功能组件模型
GB/T 33263—2016
style="width:11.75347in;height:6.71389in" />
style="width:11.75347in;height:6.71389in" />
图 2 机器人功能组件模型简化 UML 描述
组件服务信息,用以描述组件各方面的属性,如组件名称、组件的端口信息、组件的服务状态等。
组件执行状态描述如下。
——执行环境:是组件内线程的抽象表示。线程根据当前状态执行组件内相关的工作任务。
——行为内核:负责组件的内部逻辑处理。具体包含一个有限状态机(FSM)
和一个内部逻辑单
元,用于计算和处理不同时刻组件所处的状态模式。
— 状态自检:组件可以对自身状态自检,当出现异常时通过异常接口对外通知。
组件端口定义及功能描述如下。
——数据端口:组件用于对外进行数据传输的单元,包括输入端口和输出端口两类。
●
数据输入端口:用于接收从外界获取的数据,并将其传送到内部逻辑单元进行处理。
● 数据输出端口:用于向外界特定连接发送数据。
——事件端口:组件用于事件触发的单元,包括事件输入端口和事件输出端口。
● 事件输入端口:用于接收事件,并根据该事件触发某项功能。
● 事件输出端口:用于发出事件,以触发其他组件的某项功能。
-—服务端口:组件用于对外进行服务交互的单元,可以向外界租用或提供特定的服务资源。
● 服务提供者:用于向外界提供本组件内部的相关服务。
● 服务消费者:用于调用外部组件的服务资源。
动作端口:组件用于对外交互动作的单元,可以向外界提供组件内部的动作或调用外部组件的
GB/T 33263—2016
动作资源。
●
动作提供者:用于向外界提供本组件内部的相关动作,该动作一般需要较长时间执行。动
作提供单元根据动作消费单元的需求执行相关动作,并根据执行情况提供反馈与结果。
● 动作消费者:用于调用外部组件的动作资源。
——配置接口:该接口为外界提供动态的调用、修改组件内部逻辑参数的能力。
——广播事件接口:用于接收系统的事件广播,允许组件在特定事件发生时做相应的动作。
——脚本服务接口:用户可以直接用脚本对组件进行控制,状态查询等操作。
——异常接口:组件在异常情况发生时,对外通知,发出相应的命令和动作。
RFC
具有创建、激活、非激活和错误状态,处于何种状态则依赖于它所运行的执行环境。状态之间
的转换由有限状态机(FSM) 定义,并能根据外部命令切换。
当前机器人功能组件已经被实例化,但是还没有完全初始化。处于创建状态的机器人功能组件可
以进行初始化操作,若初始化成功,则组件变迁到非激活状态。
当前机器人功能组件已经完全初始化,但是没有被任何的执行环境所调用。处于创建状态的机器
人功能组件可以进行激活操作,若激活成功,则组件变迁到激活状态。
当前机器人功能组件被至少一个执行环境调用,通常当前机器人功能组件的核心功能处于执行状
态。处于激活状态的机器人功能组件可以进行失活操作,若失活成功,则组件变迁到非激活状态。处于
激活状态的机器人功能组件若遇到执行错误,则组件将变迁到与环境相对应的错误状态。
当前机器人功能组件在一个给定的执行环境遇到问题时,处于错误状态的机器人功能组件可以被
重置,如果重置成功,机器人功能组件的状态将会变迁到非激活状态,如果重置失败将还是保持错误
状态。
对机器人模块化功能组件进行功能和结构分析,确定机器人组件的功能和主要参数。确定操作系
统、开发环境、编程语言等工具。设计机器人接口、状态变迁关系和执行环境。
定义机器人功能组件参数,设置组件名称、执行模式、循环周期等属性。创建数据端口、服务端口、
事件端口、动作端口,配置端口,定义各端口数据类型。编写功能函数,实现组件功能逻辑。
GB/T 33263—2016
如果机器人功能组件能够正常初始化,可被激活和失活且运行正常,则说明机器人功能组件创建成
功。机器人功能组件的运行状态可以通过脚本服务查询和控制。
连接不同机器人功能组件的数据端口、服务端口、事件端口和动作端口,激活上述各个机器人功能
组件,测试各组件是否正常运行,测试各组件之间的通信和服务等信息是否正确。
如果以上步骤都正确完成,组件之间通过上述标准接口交换数据、调用服务,形成一个紧密相连的
整体,则机器人功能组件集成完毕。机器人功能组件集成示例参见附录A。
GB/T 33263—2016
(资料性附录)
机器人功能组件集成示例
A.1 建立机器人组件模型
对机器人模块化功能组件进行功能和结构分析。以最简的控制器和执行器所组成的控制系统为
例,由控制器输出数据以控制执行器执行相应指令。其中,控制器具有一个数据输出端口,而执行器则
有一个数据输入端口,数据类型可定义为双精度数组类型。
A.2 用机器人功能组件创建器创建 RFC 模型
用机器人功能组件创建器创建 RFC 模型一般流程如下:
a) 控制器组件,如图 A.1 所示。
|
|
||
---|---|---|---|
|
|||
|
|||
|
|||
|
|
||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
1000.0 ![]() |
图 A.1 机器人功能组件创建器创建控制器组件
b) 执行器组件的创建,如图 A.2 所示。
style="width:5.18004in" />
style="width:5.4066in" />
style="width:0.19997in" />GB/T 33263—2016
style="width:1.84001in;height:0.35332in" /> Controllerlmpljava
ControllerCompjava Controllerjava *Act uator ×
Basic
RT-Component Basic Profile
This section defines RT-Component Basic information.
*Module
Module
*Module
*Module
*Module
name:
description:
version;
vender:
category :
Component type:
Component's activity type:
Component kind:
Number of maximum instance:
Execution type: PeriodicExecutionContext
Execution rate: 1000.0
图 A.2 机器人功能组件创建器创建执行器组件
A.3 调试机器人功能组件
如果机器人功能组件能够正常激活和运行,则机器人功能创建成功。通过机器人功能组件集成器
观察机器人功能组件的运行状态。如图 A.3 和 图 A.4
所示,即为创建成功的控制器组件和执行器组件。
style="width:8.99994in;height:7.85994in" />*System Diagram.3
Properties
Property
Value
Controller
Controllero
C.. RT M. C.. RT E. RT R..
Compor ConfigurationSet:c Edit Value
active name
style="width:0.19997in;height:0.12672in" />
Cancel
Ⅲ
Dele
Path URI localhost:2809/,host cx...
Instance Name Controller0
Type Name Description Version Vendor Category State properties owned ExecutionCc
OutPort
|
|
---|
Dataflow Ty pull,push
Subscriptior flush,new,periodic
properties
图 A.3 创建成功的控制器 RFC
GB/T 33263—2016
style="width:8.17361in;height:7.11389in" />
style="width:8.17361in;height:7.11389in" />
图 A.4 创建成功的执行器 RFC
A.4 机器人功能组件通信测试
测试各组件之间的通信和服务等信息是否正确。激活上述各机器人功能组件,测试各组件是否正
常运行,测试各组件之间的通信和服务传递等信息是否正确。机器人功能组件在不同状态下,分别对应
机器人功能组件集成器里的不同颜色,如失活对应蓝色、激活对应绿色、错误对应红色等。针对此案例,
正确运行的机器人软件系统如图 A.5 所示。
GB/T 33263—2016
|
|
|
||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
|
||||||||
|
||||||||||
Instance Name
|
|
|||||||||
|
|
|||||||||
|
|
|||||||||
|
|
|||||||||
|
|
|||||||||
|
||||||||||
|
|
|||||||||
|
|
|||||||||
description |
|
|||||||||
|
|
|
|
|
|
|
||||
|
|
|||||||||
|
|
|
|
|||||||
activity type |
|
|||||||||
|
|
|
||||||||
|
|
|
||||||||
|
||||||||||
|
|
|||||||||
|
|
|||||||||
sdo.service. |
|
|||||||||
|
|
|||||||||
图 A.5 正确运行的机器人功能组件
A.5 机器人功能组件集成完毕
如果以上步骤都正确完成,组件之间通过上述标准接口交换数据、调用服务,形成一个紧密相连的
整体,则机器人功能组件集成完毕。
GB/T 33263—2016
更多内容 可以 GB-T 33263-2016 机器人软件功能组件设计规范. 进一步学习